home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / MiscKit1.7.1 / MiscKit / Palettes / MiscArrowButtonPalette / ABInspector.m < prev    next >
Text File  |  1995-04-12  |  3KB  |  143 lines

  1. // Copyright (C) 1995 Robert Todd Thomas
  2. // Use is governed by the MiscKit license
  3.  
  4. #import "MiscArrowButton.subproj/MiscArrowButton.h"
  5. #import "ABInspector.h"
  6.  
  7. @implementation ABInspector
  8.  
  9. // Load the Inspector
  10.  
  11. - init
  12. {
  13.     char buf[MAXPATHLEN + 1];
  14.     id bundle;
  15.     
  16.     [super init];
  17.     
  18.     bundle = [NXBundle bundleForClass:[MiscArrowButton class]];
  19.  
  20.     [bundle getPath: buf forResource: "MiscABInspector" ofType:"nib"];
  21.  
  22.     [NXApp loadNibFile:buf owner:self withNames:NO fromZone:[self zone]];
  23.            
  24.     return self;
  25. }
  26.  
  27.  
  28. // This method sets all the values in the inspector by getting
  29. // the relevant info from the object. This is called when the
  30. // inspector first appears, so the object's attributes are
  31. // correctly displayed in the inspector.
  32.  
  33. - revert: sender
  34. {    
  35.     // set all the options
  36.     
  37.     [ [optionMatrix cellAt: 0 : 0] setState: [object isBordered] ];
  38.     [ [optionMatrix cellAt: 1 : 0] setState: [object isTransparent] ];
  39.     [ [optionMatrix cellAt: 2 : 0] setState: [object isContinuous] ];
  40.     [ [optionMatrix cellAt: 3 : 0] setState: ![object isEnabled] ];
  41.     [ [optionMatrix cellAt: 4 : 0] setState: [object state] ];    
  42.  
  43.     // set the title, altTitle, and sound in the inspector
  44.     
  45.     [tagField setIntValue: [object tag] ];
  46.     [titleField setStringValue: [object title] ];
  47.     [altTitleField setStringValue: [object altTitle] ];
  48.     [soundField setStringValue: [ [object sound] name] ];
  49.     
  50.     [optionMatrix display];
  51.  
  52.     [alignButton setState: [object arrowAlignment] ];
  53.         
  54.     return [super revert: sender];
  55. }
  56.  
  57.  
  58.  
  59. // One of the checkbox buttons was clicked, so change the corresponding
  60. // attribute of the object being inspected.
  61.  
  62. - optionsChanged:sender
  63. {
  64.   id  cell = [sender selectedCell];
  65.   BOOL  state = [cell state];
  66.   
  67.       switch ([cell tag])
  68.     {
  69.       case 0:        // bordered            
  70.         [object setBordered: state];
  71.         break;
  72.  
  73.       case 1:        // transparent
  74.         [object setTransparent: state];
  75.         break;
  76.  
  77.       case 2:        // continuous
  78.         [object setContinuous: state];
  79.         break;
  80.  
  81.       case 3:        // disabled        
  82.         [object setEnabled: !state];
  83.         break;
  84.  
  85.       case 4:        // selected
  86.             [object setState: state];
  87.         break;
  88.      }
  89.         
  90.     return [super ok: sender];
  91. }
  92.  
  93.  
  94.  
  95. - tagChanged: sender
  96. {
  97.       [object setTag: [sender intValue] ];
  98.     
  99.     return [super ok: sender];
  100. }
  101.  
  102.  
  103.  
  104. - titleChanged: sender
  105. {
  106.     [object setTitle: [sender stringValue] ];
  107.     return [super ok: sender];
  108. }
  109.  
  110.  
  111.  
  112. - altTitleChanged: sender
  113. {
  114.     [object setAltTitle: [sender stringValue] ];
  115.     return [super ok: sender];
  116. }        
  117.  
  118.  
  119.  
  120. - soundChanged: sender
  121. {
  122.     [object setSound: [Sound findSoundFor: [sender stringValue] ] ];
  123.     return [super ok: sender];
  124. }
  125.  
  126.  
  127.  
  128. - alignmentChanged: sender
  129. {
  130.     [object setArrowAlignment: [sender state] ];
  131.     return [super ok: sender];
  132. }
  133.  
  134.  
  135.  
  136. - (BOOL)wantsButtons
  137. {
  138.     return NO;
  139. }
  140.  
  141.  
  142. @end
  143.